package weixin_oauth

import (
	"fmt"
)

// 文档：https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

// AccessToken 通过code换取网页授权access_token
func AccessToken(appid, secret, code string) (access Access, err error) {
	return httpGet[Access](fmt.Sprintf("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", appid, secret, code))
}

type Access struct {
	ErrResp
	// 成功返回参数
	Openid         string `json:"openid"`
	AccessToken    string `json:"access_token"`
	RefreshToken   string `json:"refresh_token"`
	Scope          string `json:"scope"`
	IsSnapshotuser int64  `json:"is_snapshotuser"` //是否为快照页模式虚拟账号，只有当用户是快照页模式虚拟账号时返回，值为1
	Unionid        string `json:"unionid"`
}
